package aplicacaoPlano;

import aplicacao.Aplicacao;
import aplicacao.AplicacaoDAO;
import java.util.ArrayList;
import java.util.List;
import javax.swing.table.AbstractTableModel;
import vacina.Vacina;

/**
 *
 * @author Max Weber
 */
public class AplicacaoPlanoModal extends AbstractTableModel {

    private String[] planoAplicacoesColunas = {"Cod.", "Grupo-Alvo", "Idade", "Vacina", "Dose"};
    List<AplicacaoPlano> planoAplicacoes = new ArrayList<AplicacaoPlano>();

    public AplicacaoPlanoModal(List<AplicacaoPlano> planoAplicacao) {
        this.planoAplicacoes.clear();
        this.planoAplicacoes.addAll(planoAplicacao);
    }

    @Override
    public int getRowCount() {
        return planoAplicacoes.size();
    }

    @Override
    public int getColumnCount() {
        return planoAplicacoesColunas.length;
    }

    @Override
    public Object getValueAt(int rowIndex, int columnIndex) {
        AplicacaoPlano planoAplicacao = this.planoAplicacoes.get(rowIndex);
        //pega o objeto aplicação
        AplicacaoDAO dao = new AplicacaoDAO();
        Aplicacao a = new Aplicacao();
        a = dao.pesquisarCodigo(planoAplicacao.getId());

        switch (columnIndex) {
            case 0:
                return planoAplicacao.getId();

            case 1:
                return a.getGrupo_alvo();

            case 2:
                return a.getIdade();

            case 3:
                return a.getVacina();

            case 4:
                return a.getDose();
        }
        return null;
    }

    public String getColumnName(int column) {
        switch (column) {
            case 0:
                return planoAplicacoesColunas[0];
            case 1:
                return planoAplicacoesColunas[1];
            case 2:
                return planoAplicacoesColunas[2];
            case 3:
                return planoAplicacoesColunas[3];
            case 4:
                return planoAplicacoesColunas[4];
        }
        return null;
    }
}
